#include <iostream>
#include "Prototype.h"


int main()
{
    // 创建原型对象
    std::vector<std::unique_ptr<Shape>> shapes;
    shapes.push_back(std::make_unique<Circle>(5.0));
    shapes.push_back(std::make_unique<Square>(3.0));

    // 克隆对象
    std::vector<std::unique_ptr<Shape>> clones;
    for (const auto& shape : shapes)
    {
        clones.push_back(shape->clone());
    }

    // 展示克隆结果
    for (const auto& clone : clones)
    {
        clone->draw();
    }

    return 0;
}